/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package proyecto;

import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.swing.JFrame;
import javax.swing.*;
import javax.swing.border.TitledBorder;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

/**
 *
 * @author marcomochito
 */
public class Ventana1 extends JFrame implements ActionListener, ChangeListener{

    private JPanel pnlPreguntas, pnlRespuestas, pnlBotones, pnlResp, pnlContenedor;
    private JLabel lblPregunta, lblTipoPregunta,lblNumPreg, lblLitResp, lblPistas, lblCorrectas;
    private JTextField txtPregunta, txtCorrectas;
    private JComboBox cboTipo;
    private JSpinner spnNumPreg, spnAgrOpc;
    private JCheckBox chk;
    private JButton btnAgrOpc, btnGuardarTodo, btnAgrPreg, btnCerrar;
    private JScrollPane spRespuestas;
    private List<JPanel> lstPanel = new ArrayList<>();
    private List<JPanel> lstPreg = new ArrayList<>();
    
    int i=0, j = 0;
    
    Ventana1(){
        super("Cuestionario");
        this.setSize(1200, 600);
        //this.setDefaultCloseOperation(0);
        this.setLayout(new GridLayout(3,1,4,4));
        //this.setLayout(new GridBagLayout());
        pnlPreguntas = new JPanel();
        pnlPreguntas.setBorder(new TitledBorder("Preguntas"));
        pnlRespuestas = new JPanel();
        pnlRespuestas.setBorder(new TitledBorder("Respuestas"));
        pnlContenedor = new JPanel();
        pnlContenedor.setBorder(new TitledBorder("Contenedor"));
        pnlBotones = new JPanel();
        pnlBotones.setBorder(new TitledBorder("Seleccione"));
        
        this.add(pnlPreguntas);
        
        lblPregunta = new JLabel("Ingrese Pregunta");
        lblPregunta.setBounds(10, 20, 150, 30);
        txtPregunta = new JTextField();
        txtPregunta.setBounds(160, 20, 350, 30);
        lblTipoPregunta = new JLabel("Tipo de Pregunta");
        lblTipoPregunta.setBounds(10, 70, 150, 30);
        cboTipo = new JComboBox();
        cboTipo.addItem("Seleccion Multiple");
        cboTipo.addItem("Respuesta Corta");
        cboTipo.addItem("Test");
        cboTipo.setBounds(160, 70, 150, 30);
        lblNumPreg = new JLabel("Numero Pregunta");
        lblNumPreg.setBounds(10, 130, 100, 30);
        spnNumPreg = new JSpinner();
        spnNumPreg.setBounds(160, 130, 150, 30);
        pnlPreguntas.setLayout(null);
        pnlPreguntas.add(lblPregunta);
        pnlPreguntas.add(txtPregunta);
        pnlPreguntas.add(lblTipoPregunta);
        pnlPreguntas.add(cboTipo);
        pnlPreguntas.add(spnNumPreg);
        pnlPreguntas.add(lblNumPreg);

        //PANEL CONTENEDOR
        spRespuestas = new JScrollPane(pnlRespuestas);
        this.add(spRespuestas);
        this.add(pnlBotones);
        pnlRespuestas.setLayout(new BoxLayout(pnlRespuestas, BoxLayout.Y_AXIS));
        
        pnlBotones.setLayout(new BoxLayout(pnlBotones, BoxLayout.X_AXIS));
        btnAgrOpc = new JButton("Agregar Opción");
        btnGuardarTodo = new JButton("Guardar Todo");
        pnlBotones.add(btnAgrOpc);
        pnlBotones.add(btnAgrPreg = new JButton("Agregar Pregunta"));
        pnlBotones.add(btnGuardarTodo);
        pnlBotones.add(btnCerrar = new JButton("Salir"));
        
//        txtCorrectas.setText(null);
        //txtPregunta.setText(null);
        
        
        btnAgrOpc.addActionListener(this);
        btnGuardarTodo.addActionListener(this);
        cboTipo.addActionListener(this);
        spnNumPreg.addChangeListener(this); 
        btnCerrar.addActionListener(this);
    }
    
    @Override
    public void actionPerformed(ActionEvent e) {
     
        if(e.getSource() == btnAgrOpc){
            
            i++;
            pnlResp = new JPanel();
            pnlResp.setBounds(10, 20, 570, 60);
            pnlResp.setBorder(new TitledBorder("Opcion "+(i)));
            lstPanel.add(pnlResp);
            pnlResp.setLayout(new BoxLayout(pnlResp, BoxLayout.X_AXIS));
            chk = new JCheckBox();
            chk.setBounds(10, 20, 100, 30);
            pnlResp.add(chk);
            txtCorrectas = new JTextField(10);
            txtCorrectas.setBounds(110, 20, 200, 30);
            pnlResp.add(txtCorrectas);
            
            Iterator <JPanel> itera = lstPanel.listIterator();
            while(itera.hasNext()){
                pnlRespuestas.add(itera.next());
            }
            //System.out.println(i);
            spRespuestas.validate();
        }
        
        if(e.getSource() == btnAgrPreg){
            //Ventana1 ventana1 = new Ventana1();
            //ventana1.setVisible(true);
            lstPreg.add(pnlRespuestas); 
            //this.add(l
        }
        
        if(e.getSource() == btnGuardarTodo){
            
        }
        
        if(e.getSource() == cboTipo){
            if(cboTipo.getSelectedIndex() == 1){
                btnAgrOpc.setEnabled(false);
            }
            else if(cboTipo.getSelectedIndex() == 2){
                btnAgrOpc.setEnabled(false);
            }
        }
        
        if(e.getSource()== btnCerrar){
            this.dispose();
        }
    }

    @Override
    public void stateChanged(ChangeEvent e) {
        //Ventana1 ventana1 = new Ventana1();
        //this.validate();
        txtPregunta.setText(null);
        for(int k = 0; k>lstPanel.size(); k++){
            lstPanel.get(k).getUI();
        }
//        pnlResp = new JPanel();
//        pnlResp.setBounds(10, 20, 570, 60);
//        pnlResp.setBorder(new TitledBorder("Opcion "+(i)));
//        lstPanel.add(pnlResp);
//        pnlResp.setLayout(new BoxLayout(pnlResp, BoxLayout.X_AXIS));
//        chk = new JCheckBox();
//        chk.setBounds(10, 20, 100, 30);
//        pnlResp.add(chk);
//        txtCorrectas = new JTextField(10);
//        txtCorrectas.setBounds(110, 20, 200, 30);
//        pnlResp.add(txtCorrectas);
//        Iterator <JPanel> itera = lstPanel.listIterator();
//        
//            while(itera.hasNext()){
//                pnlRespuestas.add(itera.next());
//            }
//            //System.out.println(i);
//            //spRespuestas.validate();
//            //spRespuestas.updateUI();
//            spRespuestas.revalidate();
    }
    
}
